<?php
/**
 * Created by JetBrains PhpStorm.
 * User: BLB
 * Date: 23-6-11
 * Time: 14:29
 * To change this template use File | Settings | File Templates.
 */
require_once(Config::acquire('Model', null, 'model'));

class Sla extends Model
{
    /**
     * initialiseren variabelen
     */
    private $id;
    private $omschrijving;
    private $doorlooptijd;
    private $afhandeltijd;
    private $prioriteit;


    /**
     * aanmaken van de vriabelen
     */
    public function __construct($id, $omschrijving, $doorlooptijd, $afhandeltijd, $prioriteit)
    {
        $this->id = $id;
        $this->omschrijving = $omschrijving;
        $this->doorlooptijd = $doorlooptijd;
        $this->afhandeltijd = $afhandeltijd;
        $this->prioriteit   = $prioriteit;
    }


    /**
     * Query voor deleten van de gegevens uit de gegeven tabel
     */
    public function delete()
    {
        SQL::execute("DELETE FROM `sla` WHERE `sla_ID` = {$this->id}");
       
    }

    /**
     * gegevens naar een array schrijven.
     */
    public function toArray()
    {
        return array(
            "ID" => $this->id,
            "Omschrijving" => $this->omschrijving,
            "Doorlooptijd" => $this->doorlooptijd,
            "Afhandeltijd" => $this->afhandeltijd,
            "Prioriteit" => $this->prioriteit,
        );
    }

     /**
     * Query voor het updaten van de betreffende tabel
     */
    public function update()
    {
        if (!is_null($this->id)) {
            SQL::execute("UPDATE `sla`
                      SET `sla_Omschrijving` = '{$this->omschrijving}',
                          `sla_DoorloopTijd` = '{$this->doorlooptijd}',
                          `sla_AfhandelTijd` = '{$this->afhandeltijd}',
                          `sla_Prioriteit` = '{$this->prioriteit}'
                      WHERE `sla_ID` ={$this->id};");
        } else {
            SQL::execute("INSERT INTO `sla` (
                            `sla_ID`, `sla_Omschrijving`, `sla_DoorloopTijd`, `sla_AfhandelTijd`, `sla_Prioriteit`)
                             VALUES (NULL,
                              '{$this->omschrijving}',
                              '{$this->doorlooptijd}',
                              '{$this->afhandeltijd}',
                              '{$this->prioriteit}')");

        }
    }

    /**
     * aanmaken van een nieuw item
     */
    public static function create($id, $omschrijving, $doorlooptijd, $afhandeltijd, $prioriteit)
    {
            return new Sla($id,$omschrijving , $doorlooptijd, $afhandeltijd, $prioriteit);
    }



     /*
     * lezen van de gegvens van 1 enkel item
     */
    public static function read($id)
    {
        $sla = SQL::query("SELECT * FROM `sla` WHERE `sla_id` = $id");

        if ($sla->isValid()) {
            return Sla::create(
                $sla->fetchField('sla_ID'),
                $sla->fetchField('sla_Omschrijving'),
                $sla->fetchField('sla_DoorloopTijd'),
                $sla->fetchField('sla_AfhandelTijd'),
                $sla->fetchField('sla_Prioriteit'));

        } else {
            return null;
        }
    }


    /**
     * Lezen van de gegevens in een tabel
     */
    public static function readAll()
    {
        $list = array();
        $sla = SQL::query("SELECT * FROM `sla` ORDER BY `sla_ID`");
        while ($sla->isValid()) {
            $list[] =Sla::create(
                $sla->fetchField('sla_ID'),
                $sla->fetchField('sla_Omschrijving'),
                $sla->fetchField('sla_DoorloopTijd'),
                $sla->fetchField('sla_AfhandelTijd'),
                $sla->fetchField('sla_Prioriteit'));


            $sla->next(); }
        return $list;
    }

     /**
     * Setters & getters
     */
    public function setAfhandeltijd($afhandeltijd)
    {
        $this->afhandeltijd = $afhandeltijd;
    }

    public function getAfhandeltijd()
    {
        return $this->afhandeltijd;
    }

    public function setDoorlooptijd($doorlooptijd)
    {
        $this->doorlooptijd = $doorlooptijd;
    }

    public function getDoorlooptijd()
    {
        return $this->doorlooptijd;
    }

    public function setId($id)
    {
        $this->id = $id;
    }

    public function getId()
    {
        return $this->id;
    }

    public function setOmschrijving($omschrijving)
    {
        $this->omschrijving = $omschrijving;
    }

    public function getOmschrijving()
    {
        return $this->omschrijving;
    }

    public function setPrioriteit($prioriteit)
    {
        $this->prioriteit = $prioriteit;
    }

    public function getPrioriteit()
    {
        return $this->prioriteit;
    }


}